3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
4
1
2
1
4
2
1
2
4
4
1
4
1
2
2
2
4
2
1
1
1
4
2
4
4
1
2
4
1
2
1
2
2
4
2
1
2
4
2
1
4
4
1
4
4
2
1
1
1
1
2
1
4
1
1
2
4
2
1
2
1
4
1
1
2
2
1
1
1
2
1
1
2
2
4
2
4
4
2
2
2
4
4
2
2
2
1
2
2
2
1
1
2
2
2
2
2
2
2
4
4
2
4
1
4
4
1
2
4
4
1
1
2
1
2
4
4
4
2
2
1
2
1
4
1
4
4
2
2
1
1
2
4
4
2
4
1
2
2
4
2
1
4
2
2
2
4
4
1
4
2
1
1
1
1
1
4
1
2
2
4
1
2
2
4
1
1
4
1
4
1
2
1
4
2
4
2
4
4
1
1
2
1
4
2
2
2
1
2
1
1
2
2
1
1
2
2
2
2
4
1
4
1
1
2
4
1
4
2
2
2
2
4
4
1
2
1
4
1
4
2
4
4
4
2
1
2
2
2
4
4
2
4
4
4
2
1
4
1
2
4
1
2
2
4
2
2
4
2
2
4
4
1
1
2
4
2
1
4
4
1
4
1
2
1
2
1
2
1
2
2
2
4
2
2
4
4
1
2
2
1
4
4
2
2
2
1
2
4
4
2
2
4
2
1
2
1
2
1
1
2
2
1
4
4
4
2
2
4
2
2
4
4
2
4
1
2
2
4
2
2
1
1
2
1
2
2
1
2
4
1
1
2
1
1
2
1
2
2
2
1
2
2
4
4
1
1
1
2
1
4
2
4
2
4
4
1
2
1
2
2
1
2
4
4
2
4
1
1
4
4
4
2
1
2
4
2
1
4
1
4
1
1
2
4
2
2
2
4
2
4
2
4
4
4
4
4
4
4
4
2
4
4
4
4
2
2
2
2
2
2
2
2
2
2
2
4
2
2
2
2
2
2
2
2
4
4
2
2
2
2
2
2
2
2
2
4
2
2
2
2
2
2
2
2
4
2
2
2
2
2
2
4
4
4
2
2
2
2
2
4
2
2
4
2
2
2
2
2
2
4
2
2
2
2
2
2
2
4
2
2
2
4
2
2
2
2
2
4
4
2
4
2
2
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
4
1
4
1
1
1
4
1
4
4
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
4
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
4
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
1
4
4
4
1
4
1
1
1
4
4
1
1
4
4
4
1
1
4
4
1
1
4
4
1
1
1
1
1
1
1
4
1
1
4
4
1
4
1
4
1
4
1
4
4
4
1
4
1
4
1
1
1
1
4
4
1
4
4
1
1
4
4
4
4
1
1
4
4
1
1
4
1
1
1
4
1
1
1
1
1
1
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
1
1
4
4
4
4
4
1
4
4
4
4
4
1
4
4
1
1
4
1
4
1
2
1
2
1
1
1
4
1
1
2
4
4
4
4
4
1
4
4
4
4
4
4
4
4
4
4
4
4
4
2
1
2
1
1
1
2
1
1
1
1
1
1
1
2
1
1
2
1
1
2
2
1
1
1
1
2
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
4
1
4
1
1
1
1
2
1
1
1
2
4
2
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
4
1
4
1
4
1
2
1
2
1
1
1
2
2
1
2
2
1
2
2
2
1
2
1
2
2
2
2
2
1
2
1
1
2
1
4
2
1
2
1
2
2
1
1
2
2
2
1
2
2
2
2
1
2
2
1
1
1
2
2
1
2
1
1
1
2
1
1
2
1
1
2
1
2
2
1
1
4
1
2
1
2
1
2
1
2
2
2
1
2
2
1
1
2
2
2
2
1
1
2
1
2
1
2
2
1
2
1
4
1
2
2
2
2
1
1
1
1
2
1
2
1
2
1
2
2
1
2
2
1
2
1
1
1
2
2
2
1
4
1
1
2
2
2
1
2
2
1
2
2
1
2
2
1
1
2
1
2
1
2
1
1
1
2
2
1
2
2
1
2
2
1
4
2
1
1
1
1
1
1
1
2
2
2
1
2
2
2
2
4
1
1
2
2
1
2
1
2
2
1
1
2
2
2
2
1
1
2
1
2
2
1
1
2
4
2
2
2
2
2
4
1
1
2
2
4
2
1
1
2
1
2
2
2
2
2
2
2
2
2
1
2
2
2
1
2
2
1
2
4
2
2
4
2
2
2
2
2
1
4
1
4
1
1
1
2
1
2
2
2
2
1
2
4
1
1
2
2
4
1
2
1
1
2
2
2
4
1
2
2
2
1
2
1
2
2
2
2
1
2
2
4
1
2
2
2
2
1
1
1
1
2
2
1
1
4
1
2
1
2
1
1
2
1
2
4
1
2
1
1
1
1
1
2
2
1
2
2
1
4
2
2
4
1
2
1
2
2
1
1
2
1
2
1
2
2
1
2
1
1
2
1
2
2
2
2
2
1
2
1
1
4
2
2
4
1
1
1
1
4
4
2
2
1
1
1
2
2
1
1
4
2
2
1
1
1
1
2
2
2
1
1
2
2
2
2
1
1
2
2
1
1
2
1
1
1
1
2
1
1
2
1
2
1
1
2
2
2
1
4
2
4
2
2
2
1
1
1
2
2
1
2
1
2
2
2
1
1
1
2
1
2
1
1
1
2
1
4
1
1
2
1
1
1
2
2
1
1
1
2
1
2
1
1
1
2
2
1
4
2
1
1
1
2
4
1
1
2
1
2
1
1
1
1
2
2
1
1
1
1
2
1
1
1
1
2
1
2
2
1
2
2
2
1
1
1
1
2
2
2
2
4
2
2
2
1
1
2
2
1
1
1
2
2
1
1
1
1
2
2
1
1
1
1
1
2
2
1
1
1
1
1
1
4
2
1
2
1
1
1
1
1
1
1
1
1
2
2
2
1
2
1
1
1
1
2
2
1
1
1
1
2
2
1
2
1
1
1
1
2
4
2
2
1
2
2
1
2
2
1
1
4
1
2
2
1
1
2
1
1
2
1
1
4
2
1
2
2
1
1
1
1
1
1
1
2
2
1
1
1
1
2
1
1
1
1
1
2
2
2
1
1
4
1
1
1
2
1
1
4
1
1
1
1
1
1
2
4
2
2
2
4
2
1
2
2
2
2
1
1
1
2
2
1
1
1
1
4
1
1
2
2
1
1
2
1
1
1
1
2
4
1
2
1
2
1
2
1
1
2
1
2
2
2
2
2
2
2
2
4
4
2
2
4
4
4
2
4
2
4
4
2
2
4
4
4
4
4
4
2
2
2
2
2
4
4
2
2
4
4
4
4
2
2
2
2
2
2
4
2
2
2
2
2
2
4
2
4
2
2
2
2
2
2
2
2
2
4
2
2
4
2
4
4
2
4
4
4
4
4
4
4
4
4
2
2
2
4
2
4
2
2
2
4
2
2
2
2
4
2
2
2
2
2
4
4
4
2
2
2
2
2
2
4
2
2
2
2
2
4
2
2
2
2
2
2
4
2
4
2
2
2
2
2
4
2
4
2
2
4
2
2
4
2
2
4
2
2
4
4
2
2
2
2
2
4
2
2
2
2
4
2
2
2
2
4
4
4
2
2
2
2
2
2
2
4
2
2
4
2
4
4
4
4
2
4
2
2
2
4
4
2
2
4
2
2
4
2
4
2
2
2
2
2
4
2
4
4
2
2
4
4
2
2
2
2
2
2
2
2
2
2
2
4
2
2
2
2
2
2
2
4
2
2
4
2
2
2
2
4
2
4
2
2
2
2
4
4
2
4
2
2
2
2
2
2
2
4
2
2
2
2
4
2
2
2
2
2
2
2
2
2
4
4
2
2
2
2
2
4
2
2
4
2
2
2
2
2
2
2
2
2
2
4
4
4
4
2
2
4
2
2
2
2
2
2
2
4
2
2
4
4
2
4
2
2
2
2
2
2
2
4
2
2
4
4
2
2
4
2
2
2
2
4
4
2
4
2
2
4
2
4
2
2
2
4
2
2
2
2
2
2
4
2
2
4
4
2
4
2
2
2
2
2
4
4
2
2
2
2
4
4
2
4
2
2
2
2
2
2
4
2
2
2
4
4
2
4
4
4
2
2
2
2
4
2
4
2
2
2
4
4
4
2
2
2
2
2
2
4
2
4
2
2
2
2
2
4
2
4
2
2
2
4
4
2
2
2
2
2
4
2
2
4
2
2
2
2
2
2
2
2
2
2
2
2
4
2
2
2
4
4
2
2
4
4
2
2
2
4
4
2
2
4
2
2
2
2
2
2
2
2
4
2
2
2
4
2
2
4
2
2
4
4
2
2
2
2
2
4
2
2
4
2
2
4
2
4
2
2
2
4
4
2
2
2
2
4
2
2
2
2
2
2
2
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
1
1
1
1
1
1
1
1
4
4
1
1
4
1
1
4
1
1
1
4
4
1
1
1
1
4
1
1
1
4
1
1
1
4
1
4
1
4
4
4
1
1
4
4
1
4
1
1
4
4
1
1
4
1
1
1
1
4
1
1
1
1
1
1
1
1
1
4
1
4
1
4
4
1
4
1
1
4
1
1
1
4
1
1
1
1
4
1
1
1
1
1
1
1
4
1
4
4
1
4
4
1
1
4
1
1
1
4
1
4
4
4
4
1
4
1
1
1
1
1
1
1
4
4
4
4
4
1
1
4
1
1
1
1
1
1
1
1
1
1
4
1
4
1
1
1
1
1
1
4
4
4
1
1
1
1
4
1
4
1
1
1
1
4
1
1
1
1
1
4
4
1
1
1
1
1
1
4
1
4
1
4
4
1
4
1
1
1
1
1
1
4
1
1
1
4
1
4
1
4
1
1
4
1
1
1
1
1
4
1
4
4
1
4
1
1
1
1
1
1
4
1
4
1
4
4
4
4
1
4
4
1
4
1
4
1
1
4
1
4
4
1
1
1
4
1
1
1
1
4
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
4
4
1
1
4
1
4
4
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
4
1
1
1
4
1
4
1
1
4
1
1
1
1
1
1
1
1
1
4
1
1
1
4
1
1
1
1
4
1
1
4
1
4
1
1
1
1
4
4
1
1
4
1
1
1
4
4
1
1
4
1
1
1
1
4
1
1
1
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
